package paint;

/**
 * La classe RoundRectangle sert à la création d'un Rectangle arrondi
 * @author Romain Bustos
 * @author Matthieu Perrin
 * @version 1.0
 */
public class RoundRectangle extends Rectangle {
   
    protected int ArcLong;        //Longeur arc
    protected int ArcLarg;         //Largeur arc
    
    /**
    *<b>Constructeur par defaut de la classe RoundRectangle</b><br> 
    * <p>
    * Est utilisé lors d'une construction sans arguements d'un Rectangle arrondi <br>
    * P1 = new Point() <br>
    * P2 = new Point() <br>
    * arcLong = 1 <br>
    * arcLarg = 1 <br>
    * </p>
    */
    public RoundRectangle(){
        P1 = new Point();
        P2 = new Point();
        ArcLong = 1;
        ArcLarg = 1;
    }
    
    
    /**
    *<b>Constructeur canonique de la classe RoundRectangle</b><br> 
    * <p>
    * Est utilisé lors d'une construction d'un Rectangle arrondi <br>
    * @param X1
    *   Point de départ
    * @param Y1
    *   Point d'arrivé
    * @param ArcLong1
    *   Longeur de l'arc de cercle du coin
    * @param ArcLarg1
    *   Largeur de l'arc de cercle du coin
    * </p>
    */
    public RoundRectangle(Point X1, Point Y1, int ArcLong1, int ArcLarg1){
        P1 = X1;
        P2 = Y1;
        ArcLong = ArcLong1;
        ArcLarg = ArcLarg1;
    }
    
   /**
    *<b>Observateur de la classe RoundRectangle</b><br> 
    * <p>
    * Est utilisé pour recupérer la largeur du rectangle courant<br>
    * </p>
    * @return largeur du rectangle courant
    */
    public int getArcLarg() {
        return (Math.abs(this.P1.getX() - this.P2.getX())/3);
    }

    /**
    *<b>Observateur de la classe RoundRectangle</b><br> 
    * <p>
    * Est utilisé pour recupérer la longueur du rectangle courant<br>
    * </p>
    * @return longeur du rectangle courant
    */
    public int getArcLong() {
        return (Math.abs(this.P1.getY() - this.P2.getY())/3);
    }


    /**
    *<b>Mutateur de la classe RoundRectangle</b><br> 
    * <p>
    * Est utilisé pour modifier la valeur ArcLarg<br>
    * </p>
    * @param ArcLarg
    *       nouvelle valeur ArcLarg
    */
    public void setArcLarg(int ArcLarg) {
        this.ArcLarg = ArcLarg;
    }

    /**
    *<b>Mutateur de la classe RoundRectangle</b><br> 
    * <p>
    * Est utilisé pour modifier la valeur ArcLong<br>
    * </p>
    * @param ArcLong
    *       nouvelle valeur ArcLong
    */
    public void setArcLong(int ArcLong) {
        this.ArcLong = ArcLong;
    }
}
